# -*- coding: utf-8 -*-
# Clases o metodos de ayuda


class Buffer_aux:
    """Clase que simula el funcionamiento de un bufer"""
    def __init__(self, tam=''):
        """Inicializa el bufer

    Argumentos:
    tam -- Tama�o del bufer

    """
        self.tam = tam
        self.buf = [0] * tam
        self.puntero = 0

    def insertar(self, valor):
        """Inserta el valor ingresado al bufer

    Argumentos:
    valor -- Valor que ingresa al bufer

    """
        self.buf[self.puntero] = valor
        self.puntero += 1
        if (self.puntero == self.tam) or (valor == '*'):
            self.vaciar()

    def vaciar(self):
        """Retorna los datos que se encuentran en el bufer """
        a = ''
        for i in self.buf:
            if i != 0:
                a += str(i)
                print str(i)
                self.puntero = 0
        return a


class Inicializar_Memoria:
    """Clase que simula el funcionamiento de una memoria"""
    def __init__(self, tam=''):
        """Inicializa la memoria

    Argumentos:
    tam -- Tama�o de la memoria

    """
        self.tam = tam
        self.mem = []
        self.punt = 0
        for i in range(0, tam):
            self.mem.append(None)

    def escribir(self, dato):
        """Escribe en memoria el dato ingresado

    Argumentos:
    dato -- Dato que ingresara a la memoria

    """
        self.mem[self.punt] = dato
        self.punt += 1
        if self.punt == self.tam:
            print 'Memoria llena, elimine datos para seguir ingresando'

    def leer(self):
        """Imprime los daatos que se encuentran en la memoria """
        for i in self.mem:
            print i

    def ultimoDato(self):
        """Retorna el ultimo dato ingresado en la memoria"""
        return self.mem[self.punt - 1]


def texto(txt=''):
    """Imprime un texto determinado en pantalla

    Argumentos:
    texto -- Texto a mostrar en pantalla
    """
    if txt != '':
        print txt
